﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Obra.SmugMug.Api;

namespace Obra.Test
{
    public class SmugMugServer :
        ISmugMug
    {
        #region ISmugMugAlbums Members

        public void ChangeSettings(string sessionId, int albumId, int categoryId, int subCategoryId, int communityId, int highlightId, string description, string keywords, string password, string passwordHint, int position, string sortMethod, bool sortDirection, bool @public, bool filenames, bool comments, bool externals, bool exif, bool share, bool printable, bool originals, bool familyEdit, bool friendEdit, bool hideOwner, bool header, int templateId, bool larges, bool x2Larges, bool x3Larges, bool defaultColor, bool clean, bool @protected, bool watermarking, int proofDays, string backprinting, bool smugSearchable, bool worldSearchable, float unsharpAmount, float unsharRadius, float unsharpThreshold, float unsharpSigma)
        {
            throw new NotImplementedException();
        }

        public void CreateAlbum(string sessionId, string title, int categoryId)
        {
            throw new NotImplementedException();
        }

        public void DeleteAlbum(string sessionId, int albumId)
        {
            throw new NotImplementedException();
        }

        public AlbumsContract GetAlbums(string sessionId)
        {
            throw new NotImplementedException();
        }

        public AlbumContract GetAlbumInfo(string sessionId, int albumId)
        {
            throw new NotImplementedException();
        }

        public AlbumStat GetAlbumStats(string sessionId, int albumId, int month, int year)
        {
            throw new NotImplementedException();
        }

        public void SortAlbum(string sessionId, int albumId, string by, string direction)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugAlbumTemplates Members

        public List<AlbumTemplateContract> GetAlbumTemplates(string sessionId)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugCategories Members

        public List<CategoryContract> GetCategories(string sessionId)
        {
            throw new NotImplementedException();
        }

        public void Create(string sessionId, string name)
        {
            throw new NotImplementedException();
        }

        public void Delete(string sessionId, int categoryId)
        {
            throw new NotImplementedException();
        }

        public void Rename(string sessionId, int categoryId, string name)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugImages Members

        public void DeleteImage(string sessionId, int imageId)
        {
            throw new NotImplementedException();
        }

        public ImagesContract GetImages(string sessionId, int albumId)
        {
            throw new NotImplementedException();
        }

        public ImageExif GetImageExif(string sessionId, int imageId)
        {
            throw new NotImplementedException();
        }

        public ImageContract GetImageInfo(string sessionId, int imageId)
        {
            throw new NotImplementedException();
        }

        public ImageUrls GetImageUrls(string sessionId, int imageId, int templateId)
        {
            throw new NotImplementedException();
        }

        public void UploadFromUrl(string sessionId, int albumId, string caption, Uri url, string keywords, string latitude, string longitude, string altitude, int byteCount, string md5Sum)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugSession Members

        public LoginWithPasswordContract LoginWithPassword(string emailAddress, string password, string apiKey)
        {
            UserContract user = new UserContract()
            {
                DisplayName = "--display-name--",
                Id = 1,
                NickName = "--nick-name--",
            };

            SessionContract session = new SessionContract()
            {
                Id = "--id--",
            };

            return new LoginWithPasswordContract()
            {
                AccountType = AccountType.Standard,
                FileSizeLimit = 1000,
                PasswordHash = "--hash--",
                Session = session,
                SmugVault = 1,
                User = user,
            };
        }

        public void Logout(string sessionId)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugAlbumTemplates Members

        List<AlbumTemplateContract> ISmugMugAlbumTemplates.GetAlbumTemplates(string sessionId)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugCategories Members

        List<CategoryContract> ISmugMugCategories.GetCategories(string sessionId)
        {
            throw new NotImplementedException();
        }

        void ISmugMugCategories.CreateCategory(string sessionId, string name)
        {
            throw new NotImplementedException();
        }

        void ISmugMugCategories.DeleteCategory(string sessionId, int categoryId)
        {
            throw new NotImplementedException();
        }

        void ISmugMugCategories.RenameCategory(string sessionId, int categoryId, string name)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugImages Members

        ImagesContract ISmugMugImages.GetImages(string sessionId, int albumId)
        {
            throw new NotImplementedException();
        }

        ImageExif ISmugMugImages.GetImageExif(string sessionId, int imageId)
        {
            throw new NotImplementedException();
        }

        ImageContract ISmugMugImages.GetImageInfo(string sessionId, int imageId)
        {
            throw new NotImplementedException();
        }

        ImageUrls ISmugMugImages.GetImageUrls(string sessionId, int imageId, int templateId)
        {
            throw new NotImplementedException();
        }

        void ISmugMugImages.UploadFromUrl(string sessionId, int albumId, string caption, Uri url, string keywords, string latitude, string longitude, string altitude, int byteCount, string md5Sum)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugSession Members

        LoginWithPasswordContract ISmugMugSession.LoginWithPassword(string emailAddress, string password, string apiKey)
        {
            UserContract user = new UserContract()
            {
                DisplayName = "--display-name--",
                Id = 1,
                NickName = "--nick-name--",
            };

            SessionContract session = new SessionContract()
            {
                Id = "--id--",
            };

            return new LoginWithPasswordContract()
            {
                AccountType = AccountType.Standard,
                FileSizeLimit = 1000,
                PasswordHash = "--hash--",
                Session = session,
                SmugVault = 1,
                User = user,
            };
        }

        void ISmugMugSession.Logout(string sessionId)
        {
            throw new NotImplementedException();
        }

        #endregion

        #region ISmugMugAlbums Members


        public void ChangeAlbumSettings(string sessionId, int albumId, int categoryId, int subCategoryId, int communityId, int highlightId, string description, string keywords, string password, string passwordHint, int position, string sortMethod, bool sortDirection, bool @public, bool filenames, bool comments, bool external, bool exif, bool share, bool printable, bool originals, bool familyEdit, bool friendEdit, bool hideOwner, bool header, int templateId, bool larges, bool xlarges, bool x2Larges, bool x3Larges, bool defaultColor, bool clean, bool @protected, bool watermarking, int proofDays, string backprinting, bool smugSearchable, bool worldSearchable, float unsharpAmount, float unsharRadius, float unsharpThreshold, float unsharpSigma)
        {
            throw new NotImplementedException();
        }

        #endregion
    }
}
